The Internet is a communication network that is accessible to individuals and organizations worldwide via a wide range of communication equipment. A fundamental basis for the operation of the Internet, or indeed any communication network, is a common set of communication protocols that specifically define how information is organized and communicated over the communication network.
The Internet comprises a series of connections between computers, which allow the connected computers to communicate. The content, scope, size, speed, and reliability of communication on the Internet are dependent on a set of communication protocols. Essentially, communication protocols are pre-established means of communication, and on the Internet the set of communication protocols is commonly referred to as a protocol stack. The Internet protocol stack is broken into functions of each of the set of communication protocols comprising a number of tasks, organized in layers, i.e. link, network, transport and application layers. Each layer corresponds to a different facet of communication. Internet Protocol (IP) is one of the sets of communication protocols of the Internet, which operates in the network layer.
IP is used for virtually all communication of information in data packets on the Internet. When sending data packets, IP determines how to get each of the data packets to their destination; and when receiving data packets IP determines where each of the data packets belong.
Clients, hosts and routers are primary network interfaces on the Internet, and each has a unique, numeric address called an IP address. IP determines, from a destination IP address of a data packet, how to get that data packet to its destination, and then sends it on its way. Deciding how to get the data packet to its destination is known as routing, and this is a critical task of IP.
There are two versions of IP that are of interest, the earlier IPv4, and the more recently developed IPv6. IPv4 is about twenty years old and is used extensively on the Internet. However, IPv4 suffers various limitations. A primary limitation of IPv4 is the shortage of address space, which is due to the 32-bit IP address length of IPv4. Almost all of the global Internet community uses IPv4, and therefore the 32-bit IPv4 addresses have to be shared globally. Not surprisingly, this has led to exhaustion of IPv4 addresses, and the need to expend resources within organizations, and some countries, to cope with the limited number of available IPv4 addresses. As is known, network address translators (NATs) are used to mediate the shortage of IPv4 addresses, however, NATs break end-to-end IP communication principle and NAT-unfriendly applications can not pass through the translator without involvement of application level gateways.
In order to overcome the IP address limitations, as well as other limitations of IPv4, the Internet Engineering Task Force (IETF) has standardized Internet Protocol version 6 (IPv6). IPv6 provides for an enlarged address space, where the length of the IP address has been extended to 128 bits. In addition, IPv6 supports: simplified IP headers to reduce the relay load on routers; IPsec security to provide encryption/decryption in the network layer that extends to the header as well as the payload of an IPv6 data packet; and structured addressing architecture for aggregation of routes, and the reduction of routing information
The larger address space of IPv6 provides sufficient addresses, particularly for small organizations and developing countries that are suffering from exhaustion IPv4 addresses. In addition, IPv6 revives the end-to-end or peer-to-peer communication model on the Internet, which is necessary in order to support the growing number of e-commerce applications on the Internet.
Unfortunately, IPv6 and IPv4 communication protocols do not interoperate. Consequently, IPv4 applications do not work in an IPv6 environment and vice versa. However, the deployment of IPv6 within the present predominantly IPv4 Internet is expected to be incremental and start with small IPv6 communication networks that gradually merge into the global IPv6 portion of the Internet. It is envisaged that there will necessarily be a period of coexistence of IPv4 and IPv6 on the Internet. During the transition phase, due to a lack of IPv6 applications and services, any transition solution should incorporate support for existing IPv4 applications on IPv6 communication networks. There is therefore a need for transparent communication between IPv4 and IPv6 on communication networks, particularly among IPv4 nodes over IPv6 communication networks.
Known transition methods for supporting communication between IPv4 and IPv6 on a communication network have been provided by the IETF Next Generation Transition Working Group (Ngtrans). A Dual-Stack Transition Mechanism (DSTM) suggests a dual-stack method with dynamically assigned IPv4 addresses and the use of IPv4-over-IPv6 tunneling. However, a disadvantage of this method is that it only provides limited communication and lacks flexibility since IPv6 hosts have to obtain a tunnel endpoint address before setting up an IPv4-over-IPv6 tunnel.
One prior art method disclosed by R. Gilligan and D. Nordmark, titled “Transition Mechanisms for IPv6 Hosts and Routers”, in RFC 2893, August 2000, includes a dual-stack mechanism, which mandates the complete support for IPv4 and IPv6 in hosts and routers. However, this approach does not reduce the demand for globally routable IPv4 addresses, and also increases the complexity of the communication network due to the need for both IPv4 and IPv6 routing infrastructure.
Another prior art method, which was also disclosed in RFC2893, teaches encapsulation of IPv6 data packets within headers of IPv4 data packets to carry the IPv6 data packets over existing IPv4 routing infrastructure. A disadvantage of this method is the need for extensive manual configuration. In addition, this approach is difficult to scale. Further, automatic tunneling can only be employed between individual hosts.
Yet another prior art method calls for proxy based mechanisms such as Application Level Gateway (ALG), SOCKS-based IPv6/IPv4 Gateway Mechanism (SOCKS64) and Transport Relay Translator (TCP-Relay), which provide communication between IPv4 nodes and IPv6 nodes on the Internet. These mechanisms split one IP connection into two closed connections on the application or the transport layer. One connection is for IPv4 and the other for IPv6. A disadvantage of this method is that ALG is an application-dependent mechanism. Therefore, for different applications ALG needs to provide different application gateway components. For example, SOCKS64, a networking proxy protocol, can only be provided for “socksified” sites consisting of SOCKS aware clients and a SOCKS server, hence the need for an application gateway component that supports SOCKS64.
A still further prior art method employs Network Address Translation—Protocol Translation (NATPT), is taught by Tsirtsis G., and Srisuresh P., in a publication titled “Network Address Translation-Protocol Translation (NAT-PT)”, published in RFC 2766, February 2000. This solution is derived from the traditional NAT mechanism, plus protocol translation between IPv4 and IPv6 protocol. Another prior art method is Bump-In-the-Stack (BIS), which adds an address translator module into the node's system, which co-operates with an address mapper and an extension to a name resolver, to facilitate the transition. NAT-unfriendly applications cannot pass communication through the translator box without involving ALGs. Hence, a disadvantage of these methods is that, end-to-end communication is hampered.
Yet another prior art method is Stateless IP/ICMP Translation (SIIT), which provides a flexible and stateless translation between IPv4 and IPv6. However, a disadvantage of this method is that it is incomplete, since it does not specify how the data packets with IPv4-translated IPv6 address are to be routed in an IPv6 communication network.
Thus, the known transition methods do not provide an end-to-end solution, and are difficult to implement, as they require modifications to be made to existing components, such as at end or destination host(s). In addition, there are various operating systems and various versions of operating systems running on hosts on the Internet, which makes it very difficult to implement a feasible solution catering to all possible operating systems and versions thereof.
Hence, there is a need for a transition solution that provides transparent communication between IPv4 and IPv6, particularly among IPv4 hosts over IPv6 communication networks, which is also scalable to allow for gradual adoption of IPv6 in existing predominantly IPv4 communication networks.